package homework.api02.homework_api01;

public class IntegerDemo {
    public static void main(String[] args) {

        //演示包装类的定义: 包装类和String重写equals方法,StringBuilder没有重写
        Integer i1 = new Integer(5);
        Integer i2 = new Integer(5);
        System.out.println(i1==i2);//false
        System.out.println(i1.equals(i2));//true

        //valueOf()方法会复用1个字节-128到127范围内的数据,建议使用valueOf
        Integer i3 = new Integer(5);
        Integer i4 = new Integer(5);
        System.out.println(i3==i4);//true 发生复用
        System.out.println(i3.equals(i4));//true 包装类重写了equals方法

        //基本类型与包装类型互转
        Integer i = Integer.valueOf(5);//基本类型转包装类
        int j = i.intValue();//包装类型转基本类型

        //包装类常规操作
        //1)通过包装类获取基本类型的取值范围
        int max = Integer.MAX_VALUE;
        int min = Integer.MIN_VALUE;
        System.out.println("int最大值:"+max+"int最小值:"+min);

        long max1 = Long.MAX_VALUE;
        long min1 = Long.MIN_VALUE;
        System.out.println("long的最大值:"+max1+"long的最小值:"+min1);

        //2)包装类可以将字符串转换成对应类型的基本类型
        String s1 = "123";
        int age = Integer.parseInt(s1);
        System.out.println(age);

        String s2 = "123.33";
        double price = Double.parseDouble(s2);
        System.out.println(price);

        //JDK1.5以后实现了自动拆装箱
        Integer h = 5;//Integer h = Integer.valueOf(5); 基本类型到包装类
        int d = h;//int d = h.intvalue(); 包装类到基本类型





    }
}
